Today's standard computer architecture calls for a number of separate components, such as a central processing unit ("CPU"), memory, ports and peripheral devices to be coupled together by electrical buses to provide a pathway for data between the various components. Electrical buses are simply groups of conductors (or lines) designed to operate as a group.
In typical computer architectures, there are address buses, data buses and control buses. Address buses are designed to transmit address data to allow selection of input/output ("I/O") devices and memory locations for data transfer. Data buses carry the substantive data to be transferred. Control buses transmit control signals to allow for synchronization and priority among the various components of the computer, enabling them to work in concert.
Components transmit data over buses by changing voltages on the various lines of the bus. In binary digital computers, each line in a bus is capable of assuming one of two possible states at a given moment. These states are represented by presence or absence of a voltage, or potential difference relative to ground, on each of the lines. In some schemes, the presence of a voltage denotes a binary zero and the absence of a voltage denotes a binary one. In other schemes, the presence of a voltage denotes a change from one state to the other, while the absence of a voltage denotes no change.
During operation of the computer, each particular line in the bus may change between binary one and binary zero many millions of times a second. Individual transitions in the signal thus should have relatively sharp rising and falling edges and be relatively brief in duration to preserve the integrity and fidelity of the data transmitted over the bus. Therefore, it is important that transitions between binary one and binary zero be fast and sure. In an ideal world, the bus changes voltages instantaneously and data is transmitted reliably. Unfortunately, in the real world, buses contain capacitance, resistance and inductance ("transmission line effects") just as do all real conductors.
Capacitance traps electrical charge within the conductor, presenting, in a sense, a momentum against which transitions must take place. When the line undergoes a voltage transition, capacitance in the line resists the change, typically causing a voltage oscillation at signal edges transition (termed "ringing"). This ringing may be of sufficient magnitude as to cause components reading data from the bus to misread the oscillation as being valid data, instead of a spurious transition, thereby corrupting the flow of data. To restore data integrity, data rates must be lowered.
Resistance dissipates electrical energy in the conductor, reducing the efficiency of the computer bus. Increased resistance may attenuate signals on the bus to the point that data are lost in transmission, compromising data integrity.
Inductance causes crosstalk between neighboring conductors (mutual inductance) or resistance to changes in voltage on a given conductor (self inductance). Thus, signal transitions may be delayed or made unsharp, further corrupting the data. Finally, capacitance, resistance and inductance can cooperate to cause harmonic resonance on conductors in an electrical bus, resulting in spurious frequencies being created, amplified or maintained.
During design of a new computer system, it is important to ensure that buses are not susceptible to signal distortion from stray capacitance, resistance or inductance. There are accepted design rules that can be applied to minimize these ill effects.
Today's personal computers ("PCs") employ, in general, an open architecture featuring a plurality of expansion slots that are provided within the main chassis thereof. Each of the slots has a connector adapted to receive a peripheral (also "adapter" or "expansion") daughterboard (or, interchangeably, "card") therein. The connector receives a card edge having a plurality of card edge contacts thereon. The contacts couple circuitry on the peripheral card to expansion address, data and control buses on the PC. A PC user is therefore able to equip the PC to perform desired functions.
For instance, there are peripheral cards containing modems; facsimiles; disk drives or controllers; video controllers; serial, parallel or small computer systems interface ("SCSI") ports; auxiliary memory; coprocessors; sound boards; recognition boards; network boards and the like. There are many manufacturers of these and other cards, resulting in literally thousands of different card combinations and permutations that are possible to install in a single computer. Since each installed card couples to the computer's expansion buses, the installation of a card to a system is likely to have an effect on the electrical characteristics (capacitance, resistance and inductance) of each of the conductors in the buses. The cards may electrically interact with each other in a nonobvious way to further compromise bus performance.
New chip sets for personal computers, using, in particular, 1.0 micron and smaller complementary metal oxide semiconductor ("CMOS") technology, can switch signals in less than 1 nanosecond. On a long bus, this fast edge rate can generate substantial ringing and overshoot due to transmission line effects. As mentioned previously, there are general guidelines for minimizing undesired transmission line effects, but a design engineer needs a means for evaluating these effects, both qualitatively and quantitatively, under a variety of representative loads.
It has therefore become very important to test new, open architecture computer designs to ensure, as well as can be done, that the buses are relatively insusceptible to changes in electrical characteristics due to addition of peripheral cards to the computer. In the past, this was done by inserting cards notoriously known to have the most ill effect on computer buses into a prototype computer system and placing logic probes on the various bus conductors to determine what effect, if any, the cards' presence has. Unfortunately, the list of notorious cards may be incomplete; new, even more injurious cards may appear on the market; the notorious cards may not be available, even if they are known and detrimental interaction between the cards may not be able to be determined.
Furthermore, it is inefficient to insert and remove many different cards and time consuming to configure the cards appropriately to generate proper signals. Once configured it is difficult to observe (with a logic probe or analyzer) a signal of interest because there are many signals switching at once. It may be difficult to generate a particular cycle type, and once the cycle occurs, it can be difficult to trigger the test equipment (usually a high speed oscilloscope) to capture the event.
Thus, what is needed in the art is a more efficient and effective apparatus and method for testing transmission line effects on conductors (and more specifically, personal computer buses). The apparatus and method should be extremely flexible so as to encompass as many different combinations and permutations of peripheral cards as possible and should allow signals to be tested in relative isolation.